﻿
using System;
using System.Collections.Generic;
using HCI.Questionaire.Entities;
using HCI.Questionaire.EventArgument;

namespace HCI.Questionaire.QuestionGroup
{
    public interface  IQuestionGroup
    {
        event Action<IQuestionGroup> AnswerInQuestionChanged;
        event EventHandler<QuestionIndexChangedAgrs> QuestionIndexChanged;
        event EventHandler<ValidateConfirmationNotifyArgs> ValidateConfirmationNotify;

        int LoadHistoryCount { get; set; }
        int GroupIndex { get; }
        string Description{get;}
        string Instruction { get; }
        string QuestionStateText { get; }
        bool CanMoveNext { get; }
        bool CanMovePrevious { get; }
        int CurrentQuestionIndex { get; }
        List<Question> QuestionList { get; }
        int NextQuestion();
        int PreviousQuestion();
        void AddQuestion(Question question);
        void MoveQuestion(int index);
        void ValidateConfirmation();
        void ValidateConfirmation(ChangeGroupCallerInfo args);
    }
}
